Generating optimized tool paths and machine commands for beam cutting tools

ABSTRACT

A facility for automated modelling of the cutting process for a particular material to be cut by a beam cutting tool, such as a waterjet cutting system, from empirical data to predict aspects of the waterjet&#39;s effect on the workpiece across a range of material thicknesses, across a range of cutting geometries, and across a range of cutting quality levels, all of which may be broader than, and independent of the actual requirements for a target workpiece, is described.

CROSS-REFERENCE TO RELATED APPLICATIONS INCORPORATED BY REFERENCE

This application is a continuation of U.S. patent application Ser. No.14/333,470, filed Jul. 16, 2014, now U.S. Pat. No. 9,891,617, whichapplication claims the benefit of U.S. Provisional Application No.61/930,447 filed Jan. 22, 2014. This application is also related to thefollowing applications filed on Jul. 16, 2014 and titled GENERATINGOPTIMIZED TOOL PATHS AND MACHINE COMMANDS FOR BEAM CUTTING TOOLS: U.S.patent application Ser. No. 14/333,455, U.S. patent application Ser. No.14/333,469, now U.S. Pat. No. 9,720,399, U.S. patent application Ser.No. 14/333,475, U.S. patent application Ser. No. 14/333,466, now U.S.Pat. No. 9,658,613, and U.S. patent application Ser. No. 14/333,468, nowU.S. Pat. No. 9,772,620. The foregoing applications are incorporatedherein by reference in their entireties. To the extent the foregoingapplications or any other material incorporated herein by referenceconflicts with the present disclosure, the present disclosure controls.

TECHNICAL FIELD

The described technology is directed to the field of controlling a beamcutter, such as an abrasive-jet machining system or other waterjetmachining systems.

BACKGROUND

Many common types of computer numerical control (“CNC”) machine toolscan generally be described as rigid hard cutting tools. Thesetraditional machine tools employ hard tooling, generally metal, whichspins rapidly about one or more spindles to sculpt or chip away at atarget workpiece, while moving forward along a target tool path,generally at a set speed, all as designated by a computer aidedmanufacturing (CAM) program and the operating parameters of the machinetool employed. Multiple tooling passes typically occur along the sametool path geometry, so that the workpiece gradually takes the intendedor target shape, from the chiseling that occurs with each successivesculpting pass of the spinning rigid hard tooling. Other thandulling/losing consistent sharpness, the rigid hard tooling maintainsits original shape throughout the machining process.

A separate class of CNC cutting tools that do not employ rigid hardtooling are referred to as beam cutters. In such beam cutters, a beam,employing plasma, waterjet, torch (such as oxyacetylene), or laser, asexamples, and operating along a defined tool path, either erodes(waterjet or abrasive-jet) or melts (laser, plasma, or torch) aworkpiece, in some cases through the entire thickness of the workpiece.Etching, engraving, blind hole or pocket milling strategies may also beemployed.

For beam cutter machine tools, the cutting head is generally never inactual physical contact with the workpiece, but rather hovering justnear the workpiece, with the cutting beam directed against the workpiecesurface. Beam cutter machine tools exhibit unique cuttingcharacteristics, in that the cutting beam itself is not rigid (differingfrom hard rigid tooling) and may exhibit multiple changes in shape alonga given tool path, as influenced by, among various factors, the energyof the beam cutter itself; the geometry; thickness and target workpiecematerial.

Waterjet cutting systems and other fluid cutting systems are examples ofbeam cutter machine tools. Waterjet cutting systems, such asabrasive-jet cutting systems, are used in precision cutting, piercing,shaping, carving, reaming, etching, milling, eroding and othermaterial-processing applications. During operation, waterjet cuttingsystems typically direct a high-velocity jet of fluid (e.g., water)toward a workpiece to rapidly erode portions of the workpiece. Dependingupon the resistance to the cutting process of a particular targetworkpiece material, abrasive material can be added to the fluid toenable and/or to increase the rate of erosion. When compared to othermaterial-processing systems (e.g., grinding systems, plasma-cuttingsystems, etc.) waterjet cutting systems can have significant advantages.For example, waterjet cutting systems often produce relatively fine andclean cuts, typically without heat-affected zones around the cuts.Waterjet cutting systems also tend to be highly versatile with respectto the material type of the workpiece. The range of materials that canbe processed using waterjet cutting systems includes very soft materials(e.g., rubber, foam, balsa wood, and paper) as well as very hardmaterials (e.g., stone, ceramic, and metal). Furthermore, in many cases,waterjet cutting systems are capable of executing demandingmaterial-processing operations while generating little or no dust,smoke, and/or other potentially toxic byproducts.

In order to perform a cutting project using a waterjet cutting system,it is typical to provide a stream of machine commands and relatedcontrol signals (hereafter simply “machine commands”) to the waterjetcutting system. These include turning the jet on, turning the jet off,moving the source of the jet in two-dimensional or three-dimensionalspace in a particular direction and speed, and rotating the source ofthe jet or the workpiece or both in one or more dimensions relative toits movement. A variety of approaches are used to generate such a streamof machine commands that will cause a waterjet cutter to process aworkpiece in a manner consistent with a cutting design specifying thesize, quality, and shape of elements of the post-processed workpiece.

In a similar manner, beam cutter machine tools of other types are alsocontrolled by providing stream of machine commands, including turningthe beam on, turning the beam off, moving the source of the beam intwo-dimensional or three-dimensional space in a particular direction andspeed, rotating the source of the beam or the workpiece in one or moredimensions relative to its movement, modulating the energy, diameter,flow rate, cross-sectional shape, and/or other attributes of the beam.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a perspective view illustrating a waterjet system configuredfor use with the facility in some embodiments.

FIGS. 2A-2E are processing diagrams that illustrate the effect ofwaterjet cutting tool on the shape of the resulting workpiece and theuse of tilting to compensate for them.

FIG. 3 is a block diagram showing some of the components typicallyincorporated in at least some of the clients, servers, and other deviceson which the facility operates.

FIG. 4 is a network diagram showing an arrangement of computer systemson which the facility operates in some embodiments.

FIG. 5 is a data flow diagram showing data flows produced by thefacility in some embodiments.

FIG. 6 is a flow diagram showing steps typically performed by thefacility, in some embodiments, in order to manage a repository ofobservations for use in generating cutting models. In step 601, anaction occurs with respect to the repository.

FIG. 7 is a table diagram showing example contents of an observationtable used by the facility, in some embodiments, to store informationabout observations contained in the facility's observation repository.

FIG. 8 is a flow diagram showing steps typically performed by thefacility, in some embodiments, in order to generate a stream of machinecommands and control signals for a cutting project.

FIG. 9 is a flow diagram showing steps typically performed by thefacility, in some embodiments, in order to generate a new cutting model.

FIG. 10 is a statistical graph diagram showing the derivation of curvesfrom observations selected by the facility, in some embodiments, foreach curve.

FIG. 11 is a table diagram showing sample contents of a cutting modeltable used by the facility in some embodiments to store cutting modelsgenerated by the facility for future reuse.

FIG. 12 is a flow diagram showing steps typically performed by thefacility in some embodiments in order to take advantage of parallelprocessing resources.

FIG. 13 is a flow diagram showing steps typically performed by thefacility in some embodiments in order to propose machine-operatedparameters for project that are likely to improve on the resultobtained.

FIG. 14 is a flow diagram showing steps typically performed by thefacility in some embodiments in order to provide the advisory function.

DETAILED DESCRIPTION Overview

In beam cutting applications, such as applications using waterjets,modelling of the expected workpiece geometry has been a basis for moreeffectively generating tool machine commands control signals that allowa user to perform a cutting project. In some cases, such modeling mayencompass determining the cutting speed that would allow the jet toseparate the material or to generate a part according to specificationsfor the project. Conventional modeling techniques typically use apredefined model, (such as one or more pre-set algorithms), of thebeam's behavior or the result upon the workpiece, that is dependent on afixed set of workpiece parameters: geometry, thickness, material type,and cutting results desired (one or more quality parameters, such asdimensional accuracy; absence or introduction of taper; surface finish,etc.). With mostly predetermined conventional modeling techniques, aunique static solution of motion control instructions specific to theactive operating parameters that are being employed and workpiecemachining objectives, is generated using the specific workpieceparameters that were all identified at the outset. If a workpieceparameter, such as its geometry or thickness, or an operating parameter,such as garnet flow rate, is subsequently changed, the modeling processstarts again from the beginning in order to develop a unique solutionfor that specifically defined set of workpiece and/or operatingparameters used to describe part created by the project. Conventionalmodels often make use of arbitrary “constants” or other correctionfactors, which can introduce subjective biases into the models.

The inventors have recognized that such conventional modeling techniqueswere typically narrow in focus (for example, modelling the effects ofspeed only), and might be for a limited and fixed set of parameters(such as material, pressure, etc.); and generally not well-disposed torapid optimization. For example, conventional modeling techniques do notperform a simultaneous review of differing possible operatingparameters, but rather focus only upon the current active operatingparameters. The models employed are not teachable to automate theirimprovement by the introduction of additional empirical data sets. Theone-tool-path-at-a-time optimization method requires sequentialcompilations with vastly increased compiling times, and new operatingparameters of the beam cutter technology must be changed either manuallyor within its own automated sequencing parameter ranges.

The inventors have recognized that many conventional approaches togenerating machine commands for beam cutters, such as waterjet cuttingsystems, have additional significant disadvantages. These often requireextensive manual trial, error, and refinement. Also, to the extent thatconventional approaches take advantage of empirical experimentation, itis typically necessary for such experimentation to very closely mirrormany or all of the conditions under which production cutting isperformed. Further, conventional approaches produce machine commandsthat often result in the expenditure of unnecessary levels of time,consumed substances, electricity, or other scarce or expensiveresources, and/or machine commands that produce results of inferiorquality. Also, conventional approaches are often closely tailored to aparticular set of workpiece or operating parameters such as a specificcutting depth or other tool operating parameters, and a new model,recreating prior modeling steps, typically must be created if any ofthese is varied significantly.

Accordingly, the inventors have developed a software and/or hardwarefacility (“the facility”) that, in some embodiments, automaticallygenerates a tool path for a beam cutter, such as a waterjet cuttingsystem, or for motion control systems of various other types, whichspecifies tool path characteristics, such as cutting speeds, throughoutthe process of cutting or otherwise processing a workpiece. As referredto herein, a waterjet cutting tool may perform waterjet cutting in amanner in which an abrasive substance is injected into the waterjet,and/or in a manner in which no abrasive substance is injected into thewaterjet. In various embodiments, the facility is teachable, andencapsulates constantly adjusting and updated algorithms to model thecutting process and produce machine commands, as underlying cutting testdata is added from an expanded group of potential sources. In someembodiments, the facility processes this tool path in order to generatea stream of machine commands usable to directly control a tool at a veryfine level of resolution. In some embodiments, the facility stores someor all of the tool paths that it generates, and/or some or all of themachine command streams that it generates, in a data structure called a“project control data structure.” In some embodiments, this projectcontrol data structure further stores one or more cutting models used ingenerating tool paths stored in the project control data structure.While the use of the facility as a basis for controlling a machinesystem to perform cutting is described in detail below, one of skill inthe art will appreciate that the facility may also be used to control amotion control system to perform other types of processing, including,in various embodiments, piercing, shaping, carving, milling, reaming,etching, and eroding.

In some embodiments, the facility constructs a statistical model, whichis relied upon to generate a tool path. In particular, the facility'sdescriptive model of the resultant cut edge on the part formed by thebeam uses results of cutting test made on a beam cutter, such as awaterjet machining system, typically with statistical confirmation tohigh certainty, permitting high confidence in the part program generatedusing the facility's model. In various embodiments, the cutting testsand resulting observations used by the facility in model generationinclude measurements that provide information about the nature andperformance of the cutting tool in connection with various processingoperations, including such processing operations as cutting, piercing,shaping, carving, milling, reaming, etching, and eroding. Any individualor system involved with generation of more empirical data can continueto teach the model, providing more input data, increasingly improvingthe statistical confidence of the modeling process for the materialunder study. In some embodiments, the facility may automaticallygenerate multiple possible models, which may, for example, suggest otherpossible operating parameters, for the user's consideration, such as toachieve fastest cutting, or (perhaps different) most economical cutting,or to meet other user objectives.

In some embodiments, the descriptive model constructed by the facilityis based only upon the operating parameters of the beam cuttingtechnology employed (for abrasive-waterjet: pressure, fluid (such aswater) flow rate, abrasive type, abrasive size, abrasive flow rate andothers), and the material to be cut or otherwise machined. In someembodiments, the models generated by the facility are not dependent onany specific part geometry, material thickness, or selected operationalparameters. In generating a model, empirical cutting data is used todetermine, for each of a number of different aspects of the beam'seffect on a workpiece is embedded within the modeling process, afunction or other relation that predicts a value for the aspect—or“dependent variable”—based on the value(s) of one or more independentvariables. In some embodiments, these modeled aspects include separationspeed, jet lag, kerf width, taper error, surface finish, geometry, andposition of the cutting front or other beam cutting effects such asmaximum cutting depth.

At the start, from the empirical cutting data available for the specificmaterial, a descriptive mathematical function of the effect of the beamcutter, such as a waterjet machining system, on the workpiece is derivedfor separation speeds in regard to possible thicknesses and other jetparameters, as limited only by the implicit power of the beam cutteremployed, given the possible operating parameters provided. Initiallydetermining one or more descriptive function(s), such as for the“separation speed”, then other descriptive functions, to describe otherbehaviors which are useful to the eventual workpiece tool path, can bederived, such as for the effect of jet lag, etc. All such first levelfunctions can be derived independent of workpiece geometry, thickness,and possibly other operational parameters, which are not yet required.

In some embodiments, the facility relies on a cutting metric withrespect to a particular material, thickness, and tool operatingprocedures called “separation speed.” This is, for a given cuttingdepth, the highest speed at which the jet can move and still completelypenetrate the workpiece, such that the two sides of the workpiece arefully separated. In some embodiments, the facility relies on a cuttingmetric with respect to a particular material, thickness, and tooloperating procedures called “cutting depth at specified speed.” This is,for a given speed, the depth of material removed by the jet. The cuttingprocess is forming a cut edge on either side of the cut, which willremain after completion of the process. The geometry of the remainingcut edge is determined by the effect of the beam cutting process on thematerial at the cutting front. This cutting front constitutes themomentary effect of the process on the workpiece at the leading edge ofthe beam. Its geometric effect is constituted in the resultant cut edgeof the workpiece, also referred to as the cut edge of the part or partscreated by the processing project.

There are common shape behaviors of the jet that contribute to ageometrical effect on the cut edge of the workpiece noted in beamcutting technologies, and particularly waterjet cutting tools. Suchbehaviors can include but are not limited to:

1) Jetlag—typically the deviation of the cutting front from the jetvector in the cutting plane. The jetlag typically varies with cuttingdepth

2) Kerf width—typically the width of the cutting kerf—the void createdin the workpiece by the jet—at the top entrance of the jet into thematerial. The perfect kerf would be formed by a parallel plane to thecutting plane with a distance of half of the kerf width (half the beam'sdiameter) to the cutting plane.

3) Taper error—typically the deviation of the real cutting front fromthe perfect parallel kerf, perpendicular to the cutting plane. The tapererror typically varies with cutting depth.

4) Surface finish—typically the deviation from the perfect surface interms of roughness and surface patterns. Surface finish typically varieswith cutting depth.

In various embodiments, the facility collects and manages cutting testresults, together with the material cut and cutting tool operatingparameters used. These cutting test results and the associatedinformation are referred to as “observations.”

The facility uses these observations as a basis for generating modelsthat predict how the beam cutting machine, such as a waterjet machiningtool, and its jet will affect the formation of a cutting front and thusthe ultimate shape of the cut edge of a specific material. Those are, onone hand, dependent on such factors as material type and machineoperating parameters, but on the other, independent of such factors asmaterial thickness and an eventual objective workpiece geometric shapeand possibly other selected parameters. This quality allows such a modelgenerated by the facility for a particular material type and particularoperating parameters to be reused for any subsequent project using thesame material type and the same or similar operating parameters,irrespective of differences in such factors as material thickness andgeometric cutting shape and possibly other dependent operatingparameters such as pressure, abrasive type and size, etc.

In particular, in some embodiments, to generate a model for a cuttingproject, the facility first selects from its full repository ofobservations those produced by cutting tests whose material type andoperating parameters closely match those specified for the cuttingproject. The facility enables development of one or more parametricfunctions based on existing observations and/or physical principles tothe selected observations of the corresponding type, determiningcoefficients for the parametric function that causes it to bestrepresent the behavior of the selectable observations. In someembodiments, the modelling functions which are developed by the facilityare cutting speed as a function of material depth (given possibleoperating parameters for which the beam cutting tool employed is capableof achieving), jetlag as a function both of material depth and cuttingspeed, and taper as a function both of material depth and cutting speed.In some embodiments, the facility generates the modeling functions bydetermining coefficients in a manner based on additional factors beyondthe selected observations. In some embodiments, material type and/oroperating parameters such as pressure, abrasive feedrate and others canbe independent variables of the first level modelling functions. In onepossible embodiment, the first level functions describe the effect ofthe jet on the workpiece for a straight line cut without tilting motionor direction change; or alternatively in another exemplary embodiment,including tilting motion or direction change.

In order to generate the second level functions, the facility thenmodels the expected cutting front that generates the geometry of the cutedge for the whole range or a relevant part of non-constant conditionssuch as cutting depth, speed, direction, angle, parameter changes orother effects that change the expected cutting front and therefore thegeometry of the cut edge such as corners, arcs, or bevels. At thispoint, the cutting model can still be independent of any specific ortarget workpiece geometry and could be applied to any cutting geometrywith same or similar cutting parameters. In some embodiments, thefacility receives user input specifying the geometric characteristics ofthe specific anticipated workpiece, to reduce the possible outcomescalculated by the facility. In various embodiments, the facilityreceives the geometry of a cutting project as a routed geometry, whichconsists of a possibly ordered list of cutting and traversing entitiesthat contain but are not limited to information of the intended cuttinggeometries as value and changes of position, curvature, cutting depth,cutting angles, cutting quality etc. In some embodiments, the cuttingdepth is included implicitly as workpiece thickness and cutting angle.From the specific geometry, specifications, and tool path of the cuttingproject, the facility uses the cutting model to derive speed profilesand tool path compensations.

In various embodiments, instead of constructing first- and/orsecond-level modeling functions that relate modeled dependent variablesto corresponding independent variables, the facility constructsrelations of a variety of other types that it uses as a basis forpredicting a value of the dependent variable based on a value of theindependent variable. In various embodiments, these include probabilitydistributions, lookup tables, fuzzy functions, etc.

In some embodiments, the facility manages the observations that it usesas a basis for generating cutting models, allowing a variety of actorsto add, and in some cases rate, weight, and/or remove one or moreobservations in the repository of observations that it maintains andemploys. In some embodiments, the facility assigns a rating and/orweight factors to a subject observation based on an analysis andcomparison of that observation with pre-existing observations,experience data, physical laws, or other methods. In some embodiments,the facility bases the rating on an assertion of the expected quality ofthe subject observation from this specific source. In some embodiments,the facility applies this rating individually, or on the basis of amulti-user crowd rating system or other factors. In some embodiments,the facility publishes and/or syndicates observations between differentobservation repositories, such as those associated with a centralservice and those associated with actors (for example “end users”)directly using the cutting machines. Whatever financial arrangementpermits such users of cutting machines to use the observations, andobservation repositories (purchase, financed purchase, lease, loan,license, consignment, etc.) such users are referred to herein as “toolcustomers.” For example, a particular tool customer may perform its ownexperimentation and (1) add the resulting observations to its ownobservation repository, and/or (2) add them to a central repository.Depending on its licensing agreement, the tool customer may be allowedto use the central observation repository in its entirety or a partthereof.

This source tool customer may then generate models that gain the benefitof the expanding repository of observations, as may the operator of thecentral observation repository, and/or other tool customers thatsubscribe to the central observation repository. The tool customers whouse particular observations to generate models may be at an arbitrarydistance from the geographic location where the cutting tests reflectedin those observations were performed, and in some embodiments may notlearn the identity of the actor performing the cutting tests andsupplying the observations.

In some embodiments, the source of an observation is compensated forproviding it to the central repository. In some cases, observations maybe provided by actors whose primary business lies with the performingcutting tests to generate observations and provide them for use byothers, either via the central observation repository, or directly tothe user or users. In various embodiments, compensation is in a varietyof forms, including government-issued currency, banking system credits,or proprietary credits.

In some embodiments, some or all parts of model construction and/orcontrol signal generation is performed as a service by a central serviceprovider, including a provider that operates in a cloud. In someembodiments, users of this service pay a marginal fee for its use. Insome embodiments, the service is free for tool customers who areauthorized users of a tool provided by a particular tool manufacturer.In some embodiments, the service is capable of providing modeling and/orcontrol signal generation services at differing levels of efficacy(including resource efficiency, and/or result quality), and establishesdifferential pricing for such services.

In some embodiments, a manufacturer provides a tool to a tool customerat a certain price with a limited set of cutting models, and/or alimited version of the facility for generating cutting models, andcharges the tool customer more to use the facility, and/or useless-limited models generated by the facility. In various embodiments,the tool customer pays based on the number and size of cutting projectsperformed, the number and/or quality of models used, amount of abrasiveconsumed, a fixed periodic amount for tiered or unlimited service, etc.

In some embodiments, the provider of the facility charges a toolcustomer for maintenance of and/or updates to the observationrepository. In various embodiments, the tool customer pays based on thenumber of cutting projects performed, the number and/or quality ofmodels used, amount of abrasive consumed, a fixed periodic amount fortiered or unlimited service, etc.

In some embodiments, the facility decomposes control signal generationfor a project into portions called “streaks” that each begin with a“beam on” command, contain one or more cutting entities (cutting linesand/or cutting arcs, for example), and end with a “beam off” command,and distributes these streaks to different processing entities forparallel processing.

In some embodiments, the facility suggests variations in tool operatingparameters likely to achieve the end user's particular objectives suchas for part accuracy, part production time, part cost, equipment usage,and other end user objectives. The facility may incorporate weighting ofsuch objectives, which may otherwise compete. In various embodiments,and for exemplary waterjet machining systems, such variations caninclude altering focus tube diameters, orifice sizes, garnet types,grades and flow rates, pressures, etc. For example, in some embodiments,the facility tests the variation of varying orifice size by determiningthe effect of this variation on the model's descriptive functions and,consequently, its effect on estimated cutting accuracy and speed. Insome embodiments, the alternative descriptive functional sets aresimultaneously retained into memory to compare for the optimum operatingparameters, given the later introduction of specific workpieceparameters, including cutting objectives such as the qualityrequirements.

In some embodiments, a single instance of the facility can be used withrespect to tools of a variety of models, and/or with respect to toolsfrom a variety of manufactures.

By operating in some or all of these ways, the facility generates toolpaths and machine commands at high levels of automation, resourceefficiency, result quality and/or other tool customer objectives. Inparticular: (1) tool paths can be compiled quickly with relatively smallamounts of computing resources because of the focus on functionalrelationships to describe the resultant cut edge; (2) the modelingprocess for any material is easily improvable, even by theuser/operator, by the submission of new observations; (3) if the user iscutting only one material over and over again, to different geometriesand/or thicknesses, the initial levels of functional modeling for thatmaterial are already done and may be repeatedly reused; and (4) where acustomer uses a modeling and/or control signal generation service, it isrelieved of the processing burden of itself conducting this work.

Beam Machining Systems.

FIG. 1 is a perspective view illustrating one type of beam cutter tool,a waterjet machining system 100, configured for use with the facility insome embodiments. The system 100 can include a beam generating source102 (shown schematically) (e.g., a fluid-pressurizing device, a lasersource, or a plasma source) configured to generate a beam for processingthrough a beam inlet (not shown), with or without being subjected to aconditioning unit (not shown), and with or without being stored in areservoir (not shown). The system further includes a cutting headassembly 104 operably connected to the beam generating device 102 via aconduit 106 extending between the beam generating device 102 and thecutting head assembly 104.

The system 100 can further include a base 114, a user interface 116supported by the base 114, and a second actuator 118 configured to movethe waterjet assembly 104 relative to the base 114 and other stationarycomponents of the system 100 (e.g., the fluid-pressurizing device, alaser source, or a plasma source 102), or to move the base 114 relativeto the cutting head assembly, (such as a stationary waterjet assembly)104, or to move both. For example, the second actuator 118 can beconfigured to move the cutting head assembly 104 along a processing path(e.g., cutting path) in two or three dimensions and to tilt cutting headassembly 104 relative to the base 114, or to tilt the base relative tothe cutting head assembly 104, or to tilt both. In some embodiments, thesecond actuator tilts the cutting head assembly 104 in each of twodimensions: a tilt-forward within the cutting plane that isperpendicular to the top surface of the work piece and contains themotion vector, and a lateral tilt rotation within a plane that isperpendicular both to the cutting plane and to the top surface of theworkpiece. For example, in some embodiments, the conduit 106 includes ajoint 119 (e.g., a swivel joint or another suitable joint having two ormore degrees of freedom) configured to facilitate movement of thecutting head assembly 104 relative to the base 114. Thus, the cuttinghead assembly 104, or the base 114, or both, can be configured to directa beam toward a workpiece (not shown) supported by the base 114 (e.g.,held in a jig supported by the base 114) and to move relative to eitherthe cutting head assembly 104 or the base 114, or both, while directingthe jet toward the workpiece. In various embodiments, the system canalso be configured to manipulate the workpiece in translatorical and/orrotatorical motion or a combination of both, manipulating the jet andthe workpiece.

The user interface 116 can be configured to receive input from a userand to send data based on the input to a controller (124). The input caninclude, for example, one or more specifications (e.g., coordinates,geometry or dimensions) of the processing path and/or one or morespecifications (e.g., material type or thickness) of the workpiece andoperating parameters (e.g., for a waterjet tool, pressure, flow rate,abrasive federate; for a plasma tool, electric current; for a lasertool, beam intensity).

The cutting head assembly 104 can include a beam outlet 108 and acontrol device 110 upstream from the beam outlet 108. For example, thecontrol device 110 can be configured to receive fluid from thefluid-pressurizing device 102 via the conduit 106 at a pressure suitablefor waterjet processing or gases and electric current for plasma cuttingor a laser beam for laser cutting. The control device can be positionedat a different location between beam generating device 102 and thecutting head assembly 104.

The system 100 can further include a consumable delivery apparatus 120configured to feed consumables, such as particulate abrasive or processgases, from a consumables storage container 121 to the cutting headassembly 104 or to the beam generating device 102. Within the cuttinghead assembly the processing beam is generated that in some embodimentscan consist of a laser beam possibly surrounded by process gasses, afluid jet with our without added and accelerated abrasive particles or agas jet that is transformed into a plasma beam by applying electriccurrent. In some embodiments the consumable delivery apparatus 120 isconfigured to move with the cutting head 104 relative to the base 114,or vice versa. In other embodiments, the consumable-delivery apparatus120 can be configured to be stationary while the cutting head assembly104 moves relative to the base 114. The controller can be configured tovary the demanded power at the beam device or within the system. Thesystem can consist of one or more cutting heads that can be controlledindividually and can be applying same or different parameters (orificesize, mixing tube size, abrasive size, abrasive type, abrasive feedrate,etc.). The base 114 can include a diffusing tray 122, such as, amongothers, one configured to hold a pool of fluid positioned relative tothe jig so as to diffuse the remaining energy of the jet from thecutting head assembly 104 after the beam passes through the workpiece.The system 100 can also include a controller 124 (shown schematically)operably connected to the user interface 116, the first actuator 112,and the second actuator 118, in a variety of fashions or steps ofhardware. In some embodiments, the controller 124 is also operablyconnected to an consumable metering device 126 (shown schematically) ofthe consumable delivery apparatus 120. In other embodiments, theconsumable delivery apparatus 120 can be without the metering device 126or the metering device 126 can be configured for use without beingoperably associated with the controller 124. The metered consumables canbe but are not limited to process gases, electric power, abrasivegarnet.

The controller 124 can include a processor 128 and memory 130 and can beprogrammed with instructions (e.g., non-transitory instructionscontained on a computer-readable medium) that, when executed, controloperation of the system 100.

The system can be configured to contain one or more independent orconnected motion control units. The system can be configured in variousways that allow perpendicular, rotational and/or angular cutting ofworkpieces of different shape. Embodiments of the system can include butare not limited to gantry, bridge, multi-axis kinematics (similar infunction to OMAX Tilt-A-Jet or A-Jet tools), 6-axis robot, rotary, andhexapod style machines. In various embodiments, the system is suited tocutting workpieces of a wide variety of thicknesses, includingworkpieces of negligible thicknesses.

In various embodiments, the system 100 uses various fluids other thanwater and can also include gases. In various embodiments, the system 100is adapted to cut workpieces of a variety of three-dimensional shapes.In some embodiments, the jet can cut at any angle relative to theworkpiece.

While some embodiments of the facility are adapted for use in connectionwith the beam cutters, such as a waterjet system 100, in someembodiments the facility can be used with any motion system, includingrobots, hexapod, and other tilting mechanisms.

FIGS. 2A-2E are processing diagrams that illustrate the effect of thebeam tool, such as a waterjet cutting tool, on the shape of theresulting cutting front and the use of tilting to compensate for them.The cutting front represents the effect of the beam tool on theworkpiece at the leading edge of the beam.

FIGS. 2A-2B illustrate compensation for the effect of jetlag on thecutting front. FIG. 2A is a side view processing diagram illustratingthe cutting front due to jetlag without tilt-forward compensation. Thedirection of motion of the cutting head is toward the right side of thediagram. The jet 202 is projected along a jet vector 201 that isperpendicular to the top surface of the workpiece 203. Due to the motionof the cutting head toward the right side of the diagram, the cuttingfront shape 202 extends toward the left side of the diagram, away fromthe jet vector. Accordingly, while it would be ideal to have removed allof the material from the workpiece in the cutting path exceptrectangular section 204, the jet has also failed to remove roughlytriangular section 205.

FIG. 2B is a side view processing diagram illustrating the cutting fronttool shape behavior with tilt-forward compensation. Here, thetilt-forward feature of the shown waterjet system is used to rotate thejet access 211 toward the direction of travel of the cutting head. As aresult, the leading edge of the cutting front 212 is nearly vertical,leaving very little excess material other than rectangular section 214.

FIGS. 2C-2E illustrate the effect of the beam tool on the sides of thecutting front, which is inducing taper and its compensation method, fora straight or arced cut perpendicular into the drawing's plane.

FIG. 2C is a front view processing diagram illustrating the cut edgebehavior without lateral shift or lateral tilt compensation. Thedirection of motion of the cutting head is perpendicular to the plane ofthe diagram. The jet 222 is projected along a jet vector 221 that iscontained by the plane to be cut at the edge of the workpiece 223, whichis the left edge of trapezoidal region 225. As the cutting head movesperpendicular to the plane of the diagram, all of the workpiece materialthat is within the cross-section of the jet 222 is removed, includingtrapezoidal region 225, which is intended to remain intact as a portionof the cut part.

FIG. 2D is a front view processing diagram illustrating the cut edgebehavior with lateral shift compensation, as indicated by the kerf widthof the cut edge. It can be seen by comparing FIG. 2D to FIG. 2C that thejet vector 231 has been shifted laterally, away from the part being cut,by an offset distance 237 relative to jet vector 221 shown in FIG. 2C.This offset distance 237 is half of the kerf width—the width of thechannel circle cut into the top surface of the workpiece 223 by the jet.As a result, the triangular region 235 errantly removed in FIG. 2D afterthis lateral shift is smaller than the trapezoidal region 225 errantlyremoved in FIG. 2C without the lateral shift.

FIG. 2E is a front view processing diagram illustrating the cut edgebehavior with lateral shift and lateral tilt compensation as indicatedby the taper of the cut edge. It can be seen by comparing FIG. 2E toFIG. 2D that the jet vector 241 has been rotated in plane perpendicularto the cutting head's direction of travel, away from the part being cut,by an angle alpha 246 relative to jet vector 231 shown in FIG. 2D. Thisangle alpha is derived from the modelled geometry of the remainingworkpiece to generate the demanded shape of the edge of the workpiece.In FIG. 2D it is established to be at least approximately equal to theangle at the top of triangular region 235. As a result, the right edgeof the jet 242 facing part 244 is in the displayed example roughlyvertical, such that little or no material is errantly removed from thepart. As the cut edge of the workpiece may not be a straight line, insome embodiments the facility applies cutting optimization criteria todetermine the optimal tilt compensation. Such cutting optimizationcriteria include but are not limited to: minimal maximum deviation,minimal average deviation, minimal deviation at specific cutting depths.

Facility Details

Many conventional approaches to creating a cutting model incorporatepredefined algorithms, often including fixed constants, asinterpretative correction factors, based on prior experience and fixeddata. In such approaches, the cutting model is largely static and is noteasily adjustable, particularly by the user of the beam cutting tool,such as a waterjet machining system.

The facility, on the other hand, generates its cutting models fromvariable pools of cutting test observations; the cutting models derivedautomatically update, as the input observations are modified, includinginsertions and deletions. In some embodiments, the facility uses a poolof observations that was pre-populated by one entity like themanufacturer of the machine, but is also open to accepting additionalobservations from other sources to provide a basis for constructingbetter models. The additional data sources can be customers/serviceproviders that need to cut a very specific material that has not beenincluded in the original pool of observations, since it may be oflimited value to other customers. It can include additional testing thata customer wants to perform to increase the precision of the cuttingmodel in an area that is very sensitive for the customer. The generationof this data table can be performed by this customer, it can beperformed as a service by the manufacturer, or by a third party,including groups operating in a cloud environment—and as distributeddata sets.

In some embodiments, the facility also allows the manufacturer toprovide data sets for specific configurations or materials to a customeras an optional product at additional cost. For example, for a very basiccutting tool, the extent of cutting model could be very limited and thecustomer can e.g. later obtain, for example, a “Ceramic Cutting ModelPackage,” or can obtain a package for a specific parameter (e.g. nozzle)combination.

The facility also enables third parties to offer data sets as a service.A company may generate a comprehensive data set for a special material.In some embodiments, the facility enables the company to sell the use ofthis dataset to other companies by providing an environment similar toan internet marketplace, or via other channels.

As greater numbers of observations become available to the facility viathe observation repository, the likelihood increases of being able toselect observations as the basis for a model that closely mirrors thecharacteristics of the projects for which the model will be used. This,in turn, enables the facility to rely to a lesser degree on observationsthat more significantly diverge from the characteristics of the projectsfor which the model will be used.

In some embodiments, the facility stores additional information abouteach observation that relates the observation to the tool on which thecutting test that produced the observation was performed, such as anidentifier of the tool, and/or detailed characteristics of the tool(i.e., the nature of the tool, its operating parameters, etc.) that mayhave affected the results of the cutting tests. In some embodiments, thefacility creates a model tailored to a particular tool expected to beused for an associated project or projects (the “target tool”), whichhas its own detailed characteristics. In such cases, the facilityselects observations for incorporation into the model based in partabout how well the information about detailed characteristics of thetools that were the source of the observations matches the informationabout detailed characteristics of the target tool. In some embodiments,while the model generated for a particular project is itself notcustomized for the detailed characteristics of the target tool, thefacility generates additional machine commands or tool settings fortransforming information produced by the general model into informationtailored for the detailed characteristics of the target tool.

In some embodiments, the facility uses its tracking of detailed toolcharacteristics as described above as a basis for generating models andcompiling tool paths across tools that differ to varying degrees,including in some cases tools of the same model that are configureddifferently; different tool products from the same manufacturer; toolsfrom different manufacturers; etc. That is, in such embodiments, toolsthat differ in these ways from a target tool may nonetheless be used toperform cutting tests that produce observations that are included in theobservation repository used to generate a model for the target tool.

Different sources of cutting test results may have varying reliabilityor trustworthiness. A user may trust his or her own cutting data morethan the data from the manufacturer or from a third party. Accordingly,in some embodiments, the facility uses a weighting factor (e.g., onebased on reliability), when merging data from different sources. Thatmeans, for example, the data from reliable sources may be preferred overdata from less reliable sources if both data sets are available for thegiven condition. In some embodiments, if only one data set is availableat this condition (e.g., for an uncommon material), the facility may usethis data set because it is more reliable than extrapolating data fromvery different conditions. The reliability index for each dataset can beassigned by the user who is using distributed data sets, includingchanges to the reliability index assigned, based upon later experienceor other factors. In some embodiments, the facility derives theweighting factor from a rating system that incorporates experiences fromdifferent users, and therefore can change over time. In someembodiments, the reliability index is assigned by data provider or evendifferently per data provider. In some embodiments, a part of theweighting factor is generated by self-assessment of the data provider.In some embodiments, the facility maintains two or more different kindsof weighting factors for each observation. In various embodiments, thesecan include one that the source of the observation applies, e.g., forthe trustworthiness of the operator that performed the test; one that anoperation of an observation service applies to quantify thetrustworthiness of the source; and/or one that is based on a ratingsystem by users of the data, similar to rating of vendors and/orproducts at consumer product retailing websites.

In some embodiments, the facility automatically rates the cutting testobservations uploaded based on comparing with previous cutting testobservations, and/or facilitates human review and rating, such as toprevent spamming or mistakes among the cutting test observations fromcorrupting models that would otherwise be based on them. In the case ofautomatic ratings, the facility assesses cutting test observationspreviously uploaded by the same user or company to establish trust. Thefacility then automatically assigns newly-uploaded cutting testobservations a trust/reliability attribute based on the past rating forthe entity providing the data. In addition, in some embodiments, eachcutting test observation has an identifier identifying the entity thatsubmitted it, so that, should future data turn out to be malicious, pastdata from that submitting entity can be removed or reduced in trustaccordingly.

Similar to the approach described above where the dataset is beingshared or distributed, in some embodiments, the facility treats anencapsulated copy of a cutting model similarly. The facility generatesthe functional model from the test data and physical and empiricalconstraints. Instead of sharing the test data, in some embodiments thefacility shares the abstract model in some or all of the ways describedin the paragraph above.

In some embodiments, for distributed compilation, the facilityencapsulates the cutting model and causes it to be provided to thecomputer to perform the compilation.

FIG. 3 is a block diagram showing some of the components typicallyincorporated in at least some of the clients, servers, and other deviceson which the facility operates. In various embodiments, these devices300 can include server computer systems, desktop computer systems,laptop computer systems, netbooks, mobile phones, personal digitalassistants, televisions, cameras, automobile computers, electronic mediaplayers, computer cards, etc. In various embodiments, the computersystems and devices include zero or more of each of the following: acentral processing unit (“CPU”) 301 for executing computer programs; acomputer memory 302 for storing programs and data while they are beingused, including the facility and associated data, an operating systemincluding a kernel, and device drivers; a persistent storage device 303,such as a hard drive or flash drive for persistently storing programsand data; a computer-readable media drive 304, such as a floppy, CD-ROM,or DVD drive, for reading programs and data stored on acomputer-readable medium; and a network connection 305 for connectingthe computer system to other computer systems to send and/or receivedata, such as via the Internet or another network and its networkinghardware, such as switches, routers, repeaters, electrical cables andoptical fibers, light emitters and receivers, radio transmitters andreceivers, and the like. While computer systems configured as describedabove are typically used to support the operation of the facility, thoseskilled in the art will appreciate that the facility may be implementedusing devices of various types and configurations, and having variouscomponents.

FIG. 4 is a network diagram showing an arrangement of computer systemson which the facility operates in some embodiments. The diagram shows atool customer computer system 410 that is operated by, and in some casesowned, by the tool customer that operates a beam cutter, such as theexample waterjet machining system 430. In some embodiments, the toolcustomer computer system is located on the same premises as the tool.Executing on the tool customer computer system is the facility 411 forcollecting cutting test observations 412, using them to constructcutting models 413, and applying those cutting models to determine, foreach cutting project, a tool path, and corresponding tool commands 420.The tool customer computer system passes the tool commands, via variouspossible configurations of hardware and/or software, to the tool forexecution to perform the cutting project.

In some embodiments, various portions of the functionality arecompletely offloaded to or assisted by a modeling and compilationservice computer system 450 via the Internet 440. In some embodiments,the modeling and compilation service computer system is operated by themanufacturer of the tool. For example, in some embodiments, theobservations 412 used by the facility on the tool customer computersystem to generate cutting models 413 are managed by the modeling andcompilation service computer system and published to the tool customercomputer systems of one to multiple tool customers. In some such cases,observations managed by the modeling and compilation service computersystem are contributed by a variety of different tool customers, and/orother third parties. In some embodiments, the observations used by thefacility on the tool customer computer system to construct a particularcutting model are selected for the project and returned by the modelingand compilation service computer system. In some embodiments, themodeling and compilation service computer system itself constructsand/or caches models needed by the tool customer computer systems,and/or tool paths and/or machine commands that are based on such models.

FIG. 5 is a data flow diagram showing data flows produced by thefacility in some embodiments. The diagram shows observations 501. Thesecontain the results of cutting tests performed with a beam cutting tool,such as the exemplary waterjet cutting machines. In some embodiments,the observations reflect the results of cutting tests to determine (forexample): separation speed, jetlag, kerf width, and taper. Each of thecutting tests is performed based upon material of a particular type, anda number of machine operating parameter values, such as, for theexample, orifice diameter, mixing tube diameter and length, pressure,abrasive type and feed rate, material type, class and thickness, cuttinghead design, etc.

A separation speed cutting test measures the separation speed underthose particular conditions. A separation speed cutting test is in someembodiments performed by conducting a number of different cuts in theworkpiece at different speeds, and identifying, among the cuts achievingfull separation, the one performed at the highest speed. Thus, a singleseparation speed cutting test with a single workpiece typically producesa single separation speed. In various embodiments, the recordedobservations also may include the results of piercing tests, etchingtests, milling tests or still others.

A jetlag cutting test measures jetlag. A jetlag cutting test is in someembodiments performed by making cuts in a workpiece at different speeds;in each cut, the jet is switched off abruptly while the cutting headcontinues to move. The jetlag is determined by measuring the distance atone or more cutting depth. Another approach is to analyze the patternsat cut edge surface or derive the jetlag from measuring the geometry ofan arced cut. In various embodiments, various other approaches are usedto perform a jetlag cutting test.

A kerf width cutting test measures the kerf width at the entry point ofthe cut for a given cutting speed.

A taper cutting test measures taper error. Taper is defined as deviationfrom the top measured kerf width. A taper cutting test is in someembodiments performed by making straight or arced cuts in a workpiece atdifferent speeds. In each cut, the taper distance is measured at each ofone or more depths by determining the distance perpendicular to thedirection of travel from the extent of the cut on the top surface of theworkpiece to the extent of the cut at the depth being measured. Thus, asingle taper cutting test can produce a number of different tapererrors, each corresponding to a different combination of speed anddepth.

In various embodiments, the facility receives, adds to its observationrepository, and incorporates into models cutting tests that vary incertain respects, such as cutting tests that involve cutting in shapesother than straight lines, and/or cutting tests that involve cutting attilt-forward and/or lateral tilt angles other than vertical.

In order to collect the observations contained in the repository 501,the number of cutting tests of each of the different types is performedwith different materials and various values of different machineoperating parameters. In some embodiments, all of the cutting tests areperformed by the manufacturer of the tool. In some embodiments, thecutting tests are performed by a variety of parties in possession oftools, including the manufacturer, customers, other third parties, etc.In some embodiments, the observations 501 can be collected over time, asis discussed in greater detail below in connection with FIG. 6.

When a tool path is to be generated for a particular project, thefacility determines whether a cutting model appropriate for the projectalready exists based upon the material type and machine operatingparameters specified for the project. If such a cutting model does notalready exist, the facility constructs an appropriate model, as isdiscussed in greater detail below in connection with FIG. 9.

For the project, the facility further generates a general model ofdifferent possible geometries 520, that specifies the cut edge of thespecific geometric element, (corners, radii, angles), up to the maximumthickness possible for the material specified and for the given orpossible operating parameters.

In an alternate embodiment, the outcomes calculated for the possiblelibrary of changes in geometric elements' shape and thickness may bereduced by providing the actual geometric shape and thickness of thetarget workpiece. If not already done in the step above, the facilitythen obtains for the target workpiece the routed geometry that containsthe specific geometric elements 511, cutting depth and qualityspecifications 521 to generate/assemble a tool path 530 specifying aspeed at which the cutting head is to travel during each segment of therouted geometry. The quality specification specifies, for each segmentof the routed geometry, a level of quality to be imposed on the cutedge: that is, for example, the degree of roughness of the cut edge;edge taper desired; etc. The facility uses this information in order togenerate a tool path, as is discussed in greater detail below. In someembodiments, the generated tool path includes compensation for theradius of the jet, such as by incorporating an offset equal to the jetradius in the kerf width measure used in the tool path.

To the tool path 530, the facility applies a mechanical model 531specifying the operational limits of the tool to obtain amachine-limited tool path 540 that specifies speeds for each segment ofthe geometry that are within the capabilities of the tool. Some of theoperational limits include maximum machine speed, maximum machineacceleration, permissible machine limits for each axis, etc. Thefacility then transforms the machine-limited tool path into machinecommands 550 suitable for execution by the tool in order to perform theproject.

FIG. 6 is a flow diagram showing steps typically performed by thefacility in order to update and organize an evolving repository ofobservations for use in generating cutting models. In step 601, anaction occurs with respect to the repository. If the action is toreceive a new observation, then the facility continues in step 602 toadd the observation to an observation table that embodies theobservation repository in some embodiments. Additional details about theobservation table are discussed in connection with FIG. 7 below. Afterstep 602, the facility continues in step 601 to process the next actionwith respect to the repository. If the action is to receive a command todelete a particular observation from the repository, then the facilitycontinues in step 603 to delete the specified observation from theobservation table. After step 603, the facility continues in step 601 toprocess the next action with respect to the repository. If the action isto receive a command to attribute in the weight to a particularobservation in the repository, then the facility continues in step 604to change a weight associated with the observation in the observationtable that specifies the degree to which the observation to beincorporated into cutting models for which it is otherwise appropriate.In various embodiments, the facility supports a variety of other actionsfor organizing and editing its observations repository. In someembodiments, the facility permits a user to designate observations thatwill be available for use in generating a model. In some suchembodiments, the facility permits such a user to control whichobservations are included in versus excluded from the observationrepository. In other such embodiments, the facility permits such a userto set a flag or other indication maintained in the observationrepository for each observation that specifies whether the observationwill be available for use in generating models and on the basis of anydesignated weight or bias.

Those skilled in the art will appreciate that the steps shown in FIG. 6and in each of the flow diagrams discussed below may be altered in avariety of ways. For example, the order of the steps may be rearranged;some steps may be performed in parallel; shown steps may be omitted, orother steps may be included; a shown step may divided into sub-steps, ormultiple shown steps may be combined into a single step, etc.

FIG. 7 is a table diagram showing example contents of an observationtable used by the facility in some embodiments to store informationabout observations contained in the facility's observation repository.The observation table 700 is made up of rows, such as rows 701-714, eachcorresponding to a single observation contained by the observationrepository. Each row is divided into the following columns: an ID column721 containing an identifier that can be used to refer to theobservation, such as a unique identifier; a timestamp column 722containing an indication of the time at which the observation was mostrecently added to or updated in the observation table; a source column723 identifying the provider of the observation, such as the entity whoperformed the cutting test that yielded the observation, or anintermediary through which the information was obtained; a material ormaterial type column 724 naming the material that was the subject of thecutting test; a material index column 725 containing a material indexindicating the relative susceptibility of the material to beam toolcutting, such as cutting by a waterjet machining system; a group ofoperating parameters columns 726 (contents not shown for brevity) thatidentifies values for tool operating parameters used in the cutting test(such as pressure, abasive flowrate, radius of cut, etc.); a test typecolumn 727 indicating which type of cutting test was performed; a depthparameter column 728 indicating, for separation speed tests, thethickness of the material that was separated, and for jetlag and tapertests, the depth in the material at which measurements were performed; aspeed parameter column 729 indicating, for jet lag and taper tests, thecutting speed at which the measured results were obtained; and ameasurement column 730 reflecting, for separation speed tests, andmeasurement of the separation speed, and for jetlag and taper tests, thejetlag or taper distance measured. For example, row 703 indicates thatthe observation having identifier 46798 was last added or updated onJan. 11, 2015 at 6:22:01 PM; was received from customer A; involvedcutting the material polycarbonate having a material index of 517; wasperformed using a tool having a variety of operating parameter valuesnot shown for brevity; was a measurement obtained from a jetlag cuttingtest at a depth of 2.0 mm and a speed of 2.0 mm/s; and yielded a jetlagmeasurement of 0.41 mm.

While the sample contents of the observation table show only materialsof the type polycarbonate having a material index 517, those skilled inthe art will appreciate that, in many embodiments, the observation tablewill contain observations for a wide variety of materials havingdifferent material indices. In addition to material type and index, insome embodiments, the observation table also includes a material classsuch as metal, stone, or plastic used to characterize together groups ofmaterials with similar cutting properties. In some embodiments, theobservation table also includes further details about the material thatwas the subject of the cutting test, such as (a) a particular alloy orother recipe or method used in making the material, and/or (b)manufacturing or treatment techniques used in the production of thematerial and/or (c) specific properties of the material such as forexample hardness or yield strength. In various embodiments, whenconstructing a model for a particular material, the facility usesvarious combinations of this information about the material that was thesubject of the cutting tests corresponding to the observations in theobservation table to determine their level of similarity to the modeledmaterials as a basis for selecting observations for use in constructingthe model.

The diagram also shows a last update time field 740 for the entiretable, showing the last time at which any contents of the table werechanged, such as by adding, changing, or deleting a row. In someembodiments, even where a cutting model appropriate to a project alreadyexists, the facility nonetheless creates a new cutting model if theexisting cutting model was created prior to the last update time for theobservation table, to ensure that new and changed observations arereflected in any cutting model used. In some embodiments, the creationof a new cutting model in such circumstances is at the discretion andoption of the operator.

While FIG. 7 and each of the table diagrams discussed below show a tablewhose contents and organization are designed to make them morecomprehensible by a human reader, those skilled in the art willappreciate that actual data structures used by the facility to storethis information may differ from the table shown, in that they, forexample, may be organized in a different manner; may contain more orless information than shown; may be compressed and/or encrypted; may bedistributed across several tables or data structures of other types,etc.

FIG. 8 is a flow diagram showing steps typically performed by thefacility in some embodiments in order to generate a stream of machinecommands and control signals for a cutting project. In step 801, thefacility receives material and machine operating parameters for theproject. In step 802, if a suitable cutting model is available for usein the project—that is, a model exists that was generated for materialand machine operating parameters that are similar enough to thosereceived in step 801—then the facility continues in step 806 to use anexisting cutting model, else the facility continues in step 803 togenerate the first level modeling functions for a new cutting model forthe project. The first level functions can describe the geometricproperties, as outcomes from the machining operation on the workpiece(e.g., separation speed, jet lag, taper, kerf width), as resultantaspects. In various embodiments, the facility uses observation tables,either in their entirety or parts thereof, a separate observation table,or another mechanism, to verify the validity of the first levelfunctions and/or to adjust the first level functions accordingly.Additional details about step 803 are discussed below in connection withFIGS. 9 and 10.

The second level function in step 804 describe the expected geometricalshape of the cutting front and the resulting cut edge at any of amultiplicity of geometrically different cutting entities. The relevantparameters for the second level function can include but are not limitedto curvature, direction, tilting angle as well as changes in thosegeometrical properties along the cutting entities. In some embodimentsthe full possible extent of relevant geometrical parameters is includedin those second level functions. In other embodiments a subset ofreasonable ranges based on the specifications of the current cuttingproject or other criteria can be selected. Additional details about step804 are discussed below in connection with FIGS. 9 and 10.

In step 805, the facility stores the generated cutting model in acutting model repository embodied by the cutting model table. Additionaldetails about step 805 are discussed below in connection with FIG. 11.

In step 806, the specific geometry of the cutting project and itsspecifications are received. In step 807, the facility applies thecutting model generated in step 804 or the existing suitable cuttingmodel identified in step 803 to the actual geometry and specification ofthe routed geometry for the cutting project in order to obtain a toolpath. Additional details about that 807 are discussed below in FIG. 9.In step 808, the facility applies a mechanical model specifying themechanical limits of the tool to the tool path obtained in step 807 toobtain a machine-limited tool path. In some embodiments, the facilitygenerates this machine-limited tool path in an earlier step. In step809, the facility transforms the machine-limited tool path into machinecommands executable by the tool. In step 810, the facility sends themachine commands to the tool for execution. After step 810, these stepsconclude.

FIG. 9 is a flow diagram showing steps typically performed by thefacility in order to generate a new cutting model. In steps 901-905, thefacility loops through each dependent variable modeled by the facility,also called a “modeled aspect” of the beam tool's effect on theworkpiece. In some embodiments, these include, for example, separationspeed, jetlag, kerf width, and taper. In step 902, the facilityidentifies observations in the observation table that are suitable forthe model. In some embodiments, this involves selecting observations fortests of the corresponding test type. In some embodiments, this involvesselecting observations from tests performed using a material that iseither the same as or similar to the material specified for the model,and/or a material having a similar material index. In some embodiments,this involves selecting observations from tests performed using the sameor similar values of tool operating parameters as those specified forthe model.

From the first level function(s) calculated by the facility for thematerial and beam operating parameters for certain of the modeledaspects, the facility determines second level functional relationshipsof other modeled aspects for a library of possible radii, speeds, andcornering strategies, either stored as new second level derivativefunctions, or alternatively as look up tables/matrices of the resultingcalculations. In various embodiments, the facility uses the utilizedobservation table in its entirety or a part thereof, a separateobservation table, or another mechanism to verify the validity of thesecond level functions and/or to adjust the second level functionsaccordingly. At this point, the user can develop a tool path for anygeometry and any thickness and any other independent variable, for thematerial selected and the waterjet equipment operating parameters beingemployed. The remaining workpiece parameters—thickness; geometry andquality objectives—can now be provided, if not already done so, and thefacility rapidly constructs an appropriate tool path using thepre-calculated functions and/or lookup tables. In step 903, the facilitymodels a function of predetermined form to the observations identifiedin step 902. In FIG. 10, it can be seen that the facility has modeledfunction 1014 to the selected separation speed observations for theaspect of separation speed. In some embodiments, the facility performsthis modeling starting with a parametric equation determined by theinventors to generally represent the relationship between the modeledquantities over a wide range of values.

FIG. 10 is a statistical graph diagram showing the modeling ofpredetermined parametric functions for modeled dependent variables(“modeled aspects” or “aspects”) to observations selected by thefacility for each dependent variable. For example, graph 1010,corresponding to the speed function, in which the X axis 1011 is depthand the Y axis 1012 is separation speed, shows points corresponding tothe observations selected for the separation speed function by thefacility as points, such as point 1013.

In some embodiments, these predetermined parametric equations are asfollows:

y=ax+bx ⁻¹ +c  speed:

y=ax ² +bx+c  jetlag:

y=ax ³ +bx ² +cx+d  taper:

y=az ² +bz+c  kerf width:

Returning to FIG. 9, the facility proceeds in step 904 to determinevalues for the coefficients a, b, c, and d that cause the resultingfunction of the independent variables x and z, which could be cuttingdepth, cutting speed or others to most accurately represent the selectedobservations using least square of error, minimum deviation or othermeasures. For the separation speed function, the coefficients selectedby the facility result in function 1014. This curve, represented by thespeed equation with the determined coefficients included, can be used toreliably predict, for a wide range of depths, including those for whichno experimental data is available or for which the availableexperimental data is somewhat aberrant, what the cutting performance—andtherefore the separation speed—will be for the material and operatingparameters specified for the project.

After step 904, the facility continues in step 905. In step 905, ifadditional functions remain to be processed, then the facility continuesin step 901 to process the next function, else these steps conclude.Graphs 1020 and 1030 in FIG. 10 show derivation of functions for thejetlag and taper functions, respectively. In particular, graph 1020shows that the facility actually fits a different jetlag function foreach of multiple cutting speeds, speeds 1-3. As shown here, speed 1 isthe highest speed, speed 2 is the second high-speed, and speed 3 is thethird highest speed. Similarly, graph 1030 shows that the facility fitsa different taper function to each of multiple cutting speeds, speeds1-4. Again, here, speed 1 is the highest speed, but one skilled in theart will understand that the scale highest to lowest can be reversed orotherwise altered.

In various embodiments, the modeling functions are dependent on one ormore of cutting depth, cutting speed, and tool operating parameters likepressure, abrasive feedrate, or others. In some embodiments, theselection of the modeling function is based at least in part onpreexisting know-how.

As discussed below in connection with FIG. 11, a functional modelconstructed by the facility can be represented simply by thecoefficients selected by the facility for the modeling function for eachaspect. Such a model can be quickly and inexpensively transmitted andstored. Such a functional model can also be efficiently evaluated forany geometry or material thickness. Further, such a functional modeltends to be stable; that is, it tends not to experience any significantdiscontinuities.

FIG. 11 is a table diagram showing sample contents of a cutting modeltable used by the facility in some embodiments to store cutting modelsgenerated by the facility for future reuse. The cutting model table 1100is made up of rows, such as rows 1101-1112, each corresponding to asingle one of the three functions making up a cutting model stored inthe facility's cutting model repository. Each row is divided into thefollowing columns: a model identifier column 1121 identifying thecutting model to which the row corresponds; a timestamp column 1122containing an indication of the time at which the model was added tocutting model table; a material type column 1123 naming the materialthat was the subject of the cutting test; a material index column 1124containing a material index indicating the relative susceptibility ofthe material to cutting, such as cutting by a waterjet tool; a group ofoperating parameters columns 1125 (contents not shown for brevity) thatidentifies values for tool operating parameters for which the model wascreated; a function column 1126 indicating which function of the modelthe row represents; a speed parameter column 1127 indicating, for jetlagand taper functions, the cutting speed parameter value to whose functionthe row corresponds; and coefficients columns 1128-1131 containing thecoefficients determined by the facility to define the function. In someembodiments, data from the utilized observation table in its entirety ora part thereof, a separate observation table, or another mechanism toverify the validity of the aspect described by the coefficients of thefunction or to adjust the coefficients.

For example, row 1102 indicates that the model having identifier 5646was added on Jan. 9, 2015 at 8:01:06 PM; was generated for the materialpolycarbonate having a material index of 517; was generated for a toolhaving a variety of operating parameter values not shown for brevity; isa jetlag function for the model; has the speed parameter value of 2.0mm/s; and has the exemplary coefficients a=4.12, b=3.11, and c=−0.34.

The cutting path consists of a sequence of segments, each of which canhave constant or varying geometrical properties (e.g., angle, direction,cutting depth, and curvature) along its extent, which can range frommagnitudes of single motor steps to long rule based entities. For eachsegment, the facility determines a maximum cutting speed that satisfiesthe segment's specific constraints regarding surface finish, tolerances,etc. The facility uses the descriptive first and second level modelingfunctions (jetlag, taper, separation speed, etc.) and the geometry ofthe cutting path (curvature, cutting angles, cutting depth, etc.) forthe modeled aspects to determine the expected cut edge geometry andoptimize the operating parameters using geometrical mathematicalapproaches (known from calculus, vector algebra etc.) so that thespecific requirements are met.

For example, if the taper of the cut edge can be described asy=ax³+bx²+cx+d, the facility determines that the maximum or minimumdeviation should be expected at a cutting depth x of dy/dx=ax²+bx+c=0,at x=(sqrt(b2−4ac)−b)/2a, or x=(sqrt(b2−4ac)+b)/2a. To decide whether itis a maximum or minimum, the facility considers the second derivative.If this is positive at this extreme point, it would be a minimum;negative would indicate a maximum. The minimum value of x at thiscondition is zero, and the maximum value of x is maximum possible or theactual cutting depth. If the absolute maximum is not within the actualcutting depth, the facility determines whether the local maximum occursat the boundary conditions (zero cutting depth or maximum cuttingdepth).

Depending on the configuration of the machine and the cutting project,the facility can perform the optimization by varying the cutting speedalone, or by also modifying the tilting angles relative to the nominaljet vector. In some embodiments, the facility derives both of thetilting angles from the cutting model functions and/or the functionaldescription of the expected non-tilting cut edge geometry. The facilityoptimizes operating parameters until the required constraints(tolerances, surface finish, etc.) are met, and also including otherpossible identified constraints, such as part production time, partcost, equipment utilization, etc.

In various embodiments, the facility constructs and applies models thatvary in a variety of ways from those described above, including, in somecases: (a) those that vary in the degree to which they are targeted at aparticular material type; (b) the degree to which they are targeted toparticular tool operation parameters; (c) the degree to which they aretargeted to particular physical configurations of the tool, such asparticular nozzles, cutting heads, etc.; (d) the degree to which theyare targeted to particular processing applications, such as, forwaterjet cutting, waterjet piercing, waterjet etching, or othermachining processes that can be performed by a waterjet machiningsystem; and (e) the degree to which they are targeted to other economicor non-economic objectives, such as part cost and/or equipmentutilization and/or beam tool maintenance objectives.

In some embodiments the cutting model repository contains informationabout at least some of the projects each stored model was used on; insome embodiments, the cutting model repository is stored within aproject control data structure.

FIG. 12 is a flow diagram showing steps typically performed by thefacility in some embodiments in order to take advantage of parallelprocessing resources. In step 1201, the facility can divide the routedgeometry for this project into two or more “streaks”. Those each containa sensible portion of the routed geometry. Sensible streaks can containportions of similar length. Typically the division between streaksoccurs at a point where the tool is traversing and therefore the jet,for example in abrasive waterjet cutting, is turned off. The smallesttypical ‘streak’ would therefore begin with a tool-on command; end witha tool-off command and machining/cutting operations in between. In someembodiments streaks can be defined to split a project on a cuttingentity for example to be able to account for possible changes. Byseparating the full cutting path, which can be fairly long into smallerstreaks, one can separate and parallelize the compilation of thosestreaks, e.g., on different processors or different computers. With thisapproach parallel computing is possible, which can save large amounts oftime that could otherwise delay the start of the actual cutting processand/or use valuable machine time. In step 1202, the facility distributesthe streaks determined in step 1201 across multiple processors forparallel processing. In a variety of embodiments, these could bemultiple processors or processing cores all within a single computingdevice; processors or processing cores installed in multiple computingdevices in the same location; processors or processing cores installedin multiple computing devices in multiple locations; virtual machines;cloud-based resources; etc. In step 1203, the facility assembles theresults of the parallel processing performance the 1202 to obtain amonolithic result for the project. After step 1203, these stepsconclude.

In the compilation process, the facility generates the commands andsignals that are necessary to perform the motion on the machine. Inputsto this process are the specific cutting model based on parameters andmaterial properties, the geometry of the expected part, the tool path,the definition of quality and other constraints (e.g. tolerances), thatare specified to achieve the desired outcome.

While in some embodiments the facility parallelizes the compilationprocess on the same computer that is controlling the cutting tool, insome embodiments the facility performs the compilation on differentcomputers within a network or distributed at different locations in asetup similar to a computer cloud. In various embodiments, the facilityapplies this decentralized compilation to a segmented cutting path orthe cutting path as a whole. In some embodiments, the decentralizedcomputer segments the cutting path.

In some embodiments, the facility offers this compilation as a serviceto customers to offload their machine computers. With this approach, theperformance of the machine control computer can be geared towards onlymanaging cutting files, and need not be able to itself compile.

In some embodiments, the compilation service provider guarantees thatthe compilation is always performed with the latest and best possiblesoftware. This eliminates the danger of the customer using outdatedversions of the software for compilation.

In some embodiments, the compilation service provider performs thecompilation with a particular set of features that the customer hadpurchased. In some embodiments, the cost of the compilation service isbased on a cost per cutting length, per cost savings (less abrasive,less time), per compilation time or other methods.

In some embodiments, the machine is sold with a certain set of featuresthat can be compiled locally. To obtain advanced cutting results, aservice is consulted at additional cost (or not) to obtain better/fastercutting results. These can contain but are not limited to features likecorner passing, cornering strategies or advanced cutting models.

In some embodiments, the facility creates machine commands for any typeof cutting machine from any manufacturer for which the necessary formatand the specific kinematics can be determined. Thus, the service may beextended to serve any type/brand of machine and methodology orcharacteristics of various types of beam cutting.

In some embodiments, the facility compiles at least a portion of thetool path for a project at a time when the machine is already cutting.In some embodiments, the facility performs this just-in-time compilationon a streak-by-streak basis, where the first (few) cutting streaks arepre-computed so that the machine can start cutting. While the machine iscutting, the facility compiles subsequent cutting streaks of the toolpath. This can save significant downtime of the machine where it wouldnot be cutting.

In some embodiments, the compilation process can be re-executed duringcutting. The processing speed with which the cutting model can beapplied, enables the facility to adjust speed, taper, and kerf widthwhile cutting. In such embodiments, the facility works ahead far enoughto allow for acceleration/deceleration of the cutting head. In suchembodiments, the facility performs tool path compilation for the nextphase of the project based on the intra-project cutting test results,such as by generating a new model reflecting such cutting test results,or by using an appropriate correction transformation on informationproduced by the original model. In some embodiments, such as in cases inwhich the workpiece is made of expensive material and/or the projectgeometry does not provide adequate waste space for intra-project cuttingtests, the facility directs the intra-project cutting tests to beperformed in a secondary sacrificial workpiece mounted in the machine,such as one made of an inexpensive proxy material whose level ofsusceptibility to the cutting test being performed relative to that ofthe workpiece material is known. In some embodiments, the facilityresponds to intra-project cutting test results or other sensedconditions (e.g., for beam cutting, such as with a waterjet machiningsystem, flow rate, catcher tank water temperature, workpiecepositioning) by causing the tool to be reconfigured mid-project, such asby increasing the pressure by 5%, instructing an operator to replace thetool's mixing tube, etc.

In some embodiments, even where the facility does all tool pathcompilation for a project in advance of cutting, the facility usespredicted changes to operating conditions during the course of theproject to adjust how modeling and/or compilation are performed for theproject. For example, in such a scenario, in some embodiments thefacility uses either the progressive model approach described above orthe correction transformation approach described above to adapt to thepredicted changes to operating conditions during the project.

The success of a business running a beam cutting based tool, (such as awaterjet) strongly depends on choosing the right operating conditions.With intelligent choices of the parameter settings, the tool customercan reduce operating cost, increase reliability, reduce maintenance,and/or increase performance. In some embodiments, the range of variablesextends to stacking material, using multiple nozzles, multiple machines,and other factors.

At a time of high utilization of the tool, the tool customer may want toincrease performance, at times of low utilization, the tool customer maywant to reduce maintenance and operation costs. Currently it is verylaborious to obtain precise information to make the right decision inevery business situation. In some embodiments, a parameter advisoryfunction of the facility automatically proposes or automatically selectsparameters that optimize the operation with respect to the specifiedcriteria.

When using the advisory function of the facility, the tool customer canspecify its business situation, as a part of the parameter settings. Thebusiness situation may include (or not) accounting methods to determinefixed and variable costs of abrasive waterjet operation and methods todetermine expected utilization and opportunity cost. In order to be ableto determine the optimal settings, the user provides any availableamount of such information, such as in the form of a 2D graphical inputor in the form of numerical weights or graphical sliders.

The business situation serves as input to the advisory function, whichthen optimizes the settings for the given situation. Examples foroptimizing parameters are, when the beam cutting technology employed isa waterjet tool:

TABLE 1 Effect on cost per part cost implication of low cost implicationof parameter parameter value high parameter value Abrasive feedrate Lowoperational cost High operational cost Pressure Low maintenance costHigh maintenance cost Multiple nozzles Low setup cost as result Setupexpensive of easier setup/ or impossible programming

TABLE 2 Effect on cutting performance performance performanceimplication of low implication of high parameter parameter valueparameter value Abrasive Low performance High performance feedrate powerLow performance High performance Multiple Low performance with Highperformance nozzles thin material due to machine speed limits

All parameters are limited in their range either by physical limits(e.g. for abrasive-jet cutting under 20 ksi is not viable; or perhapsover 60 ksi is not supported by the pump) or by the machine (e.g. onlyone physical nozzle would not allow choosing multiples). The calculationof each is complex and depends on the part that is being cut and also onthe number of parts that are necessary (applying two parallel nozzles orstacking material may not be reasonable if only one part is needed)

In various embodiments, the advisory function works in different phases.The more precise information used, the better the outcome will generallybe. As the complexity of calculation increases, more time and/orprocessing the resources are spent to generate the necessary data. Insome embodiments, the faster advisory functions are used for a firstestimate, and to filter out certain settings that would not yieldpromising results.

FIG. 13 is a flow diagram showing steps typically performed by thefacility in some embodiments in order to propose machine operatingparameters for cutting or machining a target workpiece on a waterjetthat are likely to improve on the result obtained given the workpieceand/or other operational objectives of the end user. In 1301, thefacility determines a first machine-limited tool path for a projectusing customer-specified machine operating parameters. In step 1302, thefacility determines metrics for the first machine-limited tool pathdetermined in step 1301. In a variety of embodiments, these metrics caninclude such metrics as total processing time for the project; resourcesexpended for the project such as water, abrasive, and electricity;cutting quality of some or all segments of the path; maximum or overalldeviation of cut part shape from routed geometry; and other metrics. Thefacility then repeats step 1303-1307 until the test specified in step1307 is satisfied. In step 1304, the facility proposes alteration of oneor more of the machine operating parameters. In step 1305, the facilitydetermines a second machine-limited tool path for the project using themachine operating parameters as altered in step 1304. In step 1306, thefacility determines metrics for the second machine-limited tool pathdetermined most recently in step 1305. In step 1307, if the metrics forthe second machine-limited tool path are superior to the metrics for thefirst machine-limited tool path, then the facility continues in step1308, else the facility continues in step 1303 to propose furtheralteration to the machine operating parameters. In step 1308, thefacility recommends the altered machine-operating parameters to the toolcustomer, such as by automatically adjusting one or more parameters onthe machine, causing them to be displayed on a display device of thetool customer, sending an email or text message to a particular userassociated with the tool customer, etc. or an accumulation orcombination of the above.

FIG. 14 is a flow diagram showing steps typically performed by thefacility in some embodiments in order to provide the advisory function.The diagram shows the beginning 1401 of a make process, for which theuser provides criteria 1402 describing the factors for which theoperating parameters should be optimized, In step 1404, the facilityaccesses the observation table, which includes observations provided byone or more customers in step 1403. In step 1406, the facility usesobservations from the observation table, together with initial parametersettings 1405, to generate a cutting model for these parameter settings.

In the first phase of the advisory function, in step 1407, the facilitydetermines an optimization using only the speed function of the cuttingmodel generated in step 1406. For a known thickness/cutting lengthcombination, the facility calculates cost and performance for eachsensible parameter setting or combinations of parameter settings as maybe reviewed. This provides a quick estimation of what ranges ofparameters should be used in order to limit the scope of the lateroptimization. In some cases, the optimization produced by the facilityin this way is adequate, and the facility skips additional phases of theadvisory function.

In some embodiments, as a second phase, with the limited range ofparameter that were defined in phase one, the facility defines the partin step 1408, analyzes the geometry of the cutting path for the part instep 1409, and performs optimization on the basis of this analysis instep 1410 from the length and curvature of the cutting path and thenumber and type of features, the facility derives an estimated relativecutting performance from nominal predicted cutting speeds and, in someembodiments, acceleration profiles. The nominal speed at an entity isthe maximum speed that would be allowed in order to achieve the desiredquality outcome (surface finish, tolerances etc.). This estimationfacilitates comparison of various cutting parameters applied to the samecutting path. While it does not yet give a true prediction of thecutting time, since machine, process, and kinematic specific limitationsare not yet applied, it still allows comparison of different parametersettings to a much higher degree than what can be accomplished in thefirst phase. The second phase can be performed at a fairly high speedeven with large file sizes and complex geometries. In some embodiments,the second phase generates a level of optimization sufficient to skipthe third phase; otherwise, the facility uses the information obtainedin this phase to further limit the range of evaluated parametervariations in phase three.

The third phase is compiling the full cutting path in step 1411,potentially including generation of the full set of motion commands tooperate the machine, and performing optimization on this basis in step1412. In some embodiments, the facility primarily performs compilationof the cutting path with a reduced set of motion control parameters(e.g., only X,Y,Z motion), and then later with the full set of motionparameters (e.g., include angular tilting axes). One useful example hereis cutting very thin material with high power jets. At this point thenominal quality speed can be very high, but on small entities like smallholes or complex geometries, the machine may not be capable ofaccelerating to this high speed due to the limited cutting length ateach entity. At this point increasing the power of the jet does nottranslate into faster cutting and it may be advantageous to use twoparallel jets instead. With two parallel jets, the nominal speed wouldbe slower, but it would produce two parts at the same time and thereforedouble the cutting performance. This approach may be fairly timeconsuming, but ensures a very precise prediction and therefore the bestpossible optimization. To reduce the amount of time to perform theadvisory function the range of parameters under consideration forvariation can be limited to a certain range predetermined by thefacility based on the previous phases of the advisory function and thephysical limitations of the machine, e.g., for a beam cutting tool, suchas a waterjet machining system, the horsepower of the pump, availablenumber of carriages with potentially different operating parameters likeorifice size, etc. At the end of the advisory function, the facilitysuggests or implements the resulting optimize parameter settings on themachine in step 1414, and can also cut the part in step 1413 using thegenerated motion commands.

The advisory function can be performed on the machine controller, anetwork or distributed on many different computers as in a cloud basedsystem. The advisory function can be a service that is provided at cost(or otherwise, for example under license) to the operator.

It will be appreciated by those skilled in the art that theabove-described facility may be straightforwardly adapted or extended invarious ways. As one example, in various embodiments, the facility canbe operated in connection with various types of beam cutter machinetools, including those identified elsewhere herein, as part ofperforming material-processing applications of various types, includingthose identified elsewhere herein. While the foregoing description makesreference to particular embodiments, the scope of the invention isdefined solely by the claims that follow and the elements recitedtherein.

1-114. (canceled)
 115. A computer-readable medium having contentsconfigured to cause a computing system to perform a method forprocessing a routed geometry for a waterjet cutting project, the methodcomprising: receiving the routed geometry, the routed geometry includinginformation specifying portions of the geometry for which the waterjetis on and portions of the geometry for which the waterjet is off;decomposing at least part of the routed geometry into a plurality ofsegments, each segment comprising a sequence of one or more completeportions for which the waterjet is on; and causing a plurality ofprocessing units to process the plurality of segments, wherein eachdistinct processing unit processes a different segment to generatemachine control signals configured to control a cutting tool for thesegment.
 116. The computer-readable medium of claim 115 wherein each ofthe segments comprises a single complete portion for which the waterjetis on.
 117. The computer-readable medium of claim 115, unit wherein eachdistinct processing unit further processes a different segment todetermine at least one of a cutting speed or tilting angle of thecutting tool.
 118. The computer-readable medium of claim 117 whereineach different processing unit is a different processing core.
 119. Thecomputer-readable medium of claim 117 wherein each different processingunit is a different processor.
 120. The computer-readable medium ofclaim 117 wherein each different processing unit is a different networknode.
 121. The computer-readable medium of claim 117 wherein eachdifferent processing unit is a different virtual machine.
 122. Thecomputer-readable medium of claim 117, wherein the method furthercomprises merging the machine control signals generated for theplurality of segments. 123-172. (canceled)
 173. A method for processinga routed geometry for a waterjet cutting project, the method comprising:receiving the routed geometry, the routed geometry including portions ofthe geometry for which the waterjet is configured to correspond to afirst state and portions of the geometry for which the waterjet isconfigured to correspond to a second state; decomposing at least part ofthe routed geometry into a plurality of segments, each segmentcomprising a sequence of one or more portions for which the waterjet isconfigured to correspond to the first state; and causing a plurality ofprocessing units to process the plurality of segments, wherein eachdistinct processing unit processes a different segment to generatemachine control signals configured to control a cutting tool for thesegment.
 174. The method of claim 173, wherein the waterjet isperforming cutting in the first state.
 175. The method of claim 173,wherein the a cutting tool of the waterjet is traversing in the secondstate.
 176. The method of claim 173, wherein each distinct processingunit further processes a different segment to determine at least one ofa cutting speed or tilting angle of the cutting tool.
 177. The method ofclaim 173, wherein each distinct processing unit processes a differentsegment based on at least one of a cutting model, a geometry of anexpected part, or a definition of quality or constraint.
 178. The methodof claim 173, wherein the plurality of processing units process theplurality of segments in parallel.
 179. The method of claim 173, furthercomprising determining a processing expense based on at least one ofcutting length, cost savings, or processing time.
 180. The method ofclaim 173, wherein the method is performed when the waterjet alreadystarted cutting for the cutting project.
 181. The method of claim 173,further comprising merging the machine control signals generated for theplurality of segments.
 182. A system, comprising: one or moreprocessors; and memory storing contents configured to cause the one ormore processors to perform actions including: receiving a routedgeometry for a waterjet cutting project, the routed geometry includingportions of the geometry for which the waterjet is configured tocorrespond to a first state and portions of the geometry for which thewaterjet is configured to correspond to a second state; decomposing atleast part of the routed geometry into a plurality of segments, eachsegment comprising a sequence of one or more portions for which thewaterjet is configured to correspond to the first state; and causing aplurality of processing units to process the plurality of segments,wherein each distinct processing unit processes a different segment togenerate machine control signals configured to control a cutting toolfor the segment.
 183. The system of claim 182, wherein the systemfurther comprises the plurality of processing units.
 184. The system ofclaim 182, wherein the plurality of processing units include at leastone of a processing core, a processor, a network node, or a virtualmachine.